import tkinter as tk
import pymssql
#上级管理部门-修改养护任务状态的页面
#modify_task_status_page.pu
def open_modify_task_status_page():
    modify_task_status_window = tk.Tk()
    modify_task_status_window.title("上级主管部门-修改养护任务状态页面")
    modify_task_status_window.geometry("350x400")

    # 提示文本
    label_task_name_prompt = tk.Label(modify_task_status_window, text="请输入养护任务名称：")
    label_task_name_prompt.pack(pady=5)

    # 输入框
    entry_task_name = tk.Entry(modify_task_status_window)
    entry_task_name.pack(pady=5)

    # 查询按钮
    def find_task_info():
        task_name_to_modify = entry_task_name.get()
        task_data = find_task_by_name(task_name_to_modify)
        display_text.delete(1.0, tk.END)
        display_text.insert(tk.END, task_data)

    find_button = tk.Button(modify_task_status_window, text="查询任务信息", command=find_task_info)
    find_button.pack(pady=5)

    # 显示框
    display_text = tk.Text(modify_task_status_window, height=5, width=40)
    display_text.pack()

    # 提示文本
    label_status_prompt = tk.Label(modify_task_status_window, text="请输入新的任务状态：")
    label_status_prompt.pack(pady=5)

    # 输入框
    entry_new_status = tk.Entry(modify_task_status_window)
    entry_new_status.pack(pady=5)

    # 修改按钮
    def modify_task_status():
        task_name_to_modify = entry_task_name.get()
        new_status = entry_new_status.get()
        success = modify_task_status_in_database(task_name_to_modify, new_status)

        if success:
            result_text = "修改成功！"
        else:
            result_text = "修改失败，请检查输入。"

        label_result.config(text=result_text)

    modify_button = tk.Button(modify_task_status_window, text="修改任务状态", command=modify_task_status)
    modify_button.pack(pady=5)

    # 提示文本
    label_result = tk.Label(modify_task_status_window, text="")
    label_result.pack(pady=5)

    modify_task_status_window.mainloop()

# 从数据库中获取植物养护信息
def find_task_by_name(name):
    try:
        # Connect to the database
        conn = pymssql.connect(
            host='localhost',
            user='CSY',
            password='211002624',
            database='植物管理系统',
            as_dict=True  # 设置为 True，将查询结果转为字典
        )
        cursor = conn.cursor()

        # 执行查询语句
        query = f"SELECT 养护任务编号,养护任务名称,养护任务执行地点,养护任务执行时间,养护任务执行人员,养护任务描述,养护对象,养护任务状态 FROM 养护 WHERE 养护任务名称 = '{name}'"
        cursor.execute(query)

        # 获取查询结果
        maintenance_data = cursor.fetchall()

        # 关闭数据库连接
        conn.close()

        # 格式化结果
        formatted_data = ""
        for data in maintenance_data:
            formatted_data += f"养护任务编号: {data['养护任务编号']}\n养护任务名称: {data['养护任务名称']}\n养护任务执行地点: {data['养护任务执行地点']}\n养护任务执行时间: {data['养护任务执行时间']}\n养护任务执行人员: {data['养护任务执行人员']}\n养护任务描述: {data['养护任务描述']}\n养护对象: {data['养护对象']}\n养护任务状态: {data['养护任务状态']}\n "

        return formatted_data
    except Exception as e:
        print(f"Error: {e}")
        return "查询失败，请检查数据库连接和查询语句。"

def modify_task_status_in_database(name, new_status):
    try:
        # Connect to the database
        conn = pymssql.connect(
            host='localhost',
            user='CSY',
            password='211002624',
            database='植物管理系统'
        )
        cursor = conn.cursor()

        # Execute the query to update task status
        query = f"UPDATE 操作 SET 任务状态 = '{new_status}' WHERE 任务名称 = '{name}'"
        cursor.execute(query)

        # Commit the changes
        conn.commit()

        # Close the database connection
        conn.close()

        return True
    except Exception as e:
        print(f"Error: {e}")
        return False
